#include <cstring>
#include "common.hpp"

// 管理管道文件
int main()
{
    // logmessage(INFO, "hello");
    // 检测可变参数
    // cout << sum(1, 10) << endl;
    // cout << sum(3, 1, 2, 3) << endl;
    // cout << sum(2, 1, 10) << endl;
   
    Init init;

    // 打开管道
    // 打开管道的时候会等待写入方打开之后，自己才会打开文件，向后执行。open阻塞了。
    int fd = open(FIFO_FILE, O_RDONLY);
    if(fd < 0)
    {
        // perror("open");
        logmessage(FATAL, "error string: %s, error code: %d", strerror(errno), errno);
        exit(FIFO_OPEN_ERR);
    }
    logmessage(INFO, "server open file done, error string: %s, error code: %d", strerror(errno), errno);

    // 开始通信
    while(true)
    {
        char buffer[1024];
        int x = read(fd, buffer, sizeof(buffer));
        if(x > 0)
        {
            buffer[x] = '\0';
            cout << "client say@ " << buffer << endl;
        }
        else if(0 == x) 
        {
            // cout << "client quit! me to...." << endl;
            logmessage(DEBUG, "client quit, me too!, error string: %s, error code: %d", strerror(errno), errno);
            break;
        }
        else{
            break;
        }
    }
    close(fd);
    
    return 0;
}